export default class MyEvent {
    constructor() {
        this._callbacks = {}
    }
    // 事件名 evname 的作用其实就是注册函数进行分组
    on(evname, callback) {
        // 如果分组不存在，则创建分组，并初始值为一个空 []
        if (!this._callbacks[evname]) {
            this._callbacks[evname] = []
        }
        // 把 callback push 到该分组下
        this._callbacks[evname].push(callback)
    }
    // emit 第二个参数就是触发事件的时候，传入的数据，这些数据将会在与当前 evname 绑定的回调函数中通过其第一个参数进行接收
    emit(evname, data) {
        // 把 _callbacks 中存储的函数取出来，依次调用
        if (this._callbacks[evname]) {
            for (let i = 0; i < this._callbacks[evname].length; i++) {
                let cb = this._callbacks[evname][i]
                cb(data)
            }
        }

    }
}